/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    debugger
    console.log("「页面 JS」：当前页面地址 " + location.href);

    listenWebSocket();  // 开始监听 WebSocket
}

// 创建 WebSocket 连接
const listenWebSocket = () => {
    debugger
    //172.28.40.182:8686/linglong-api/
    const wsUrl = "ws://172.28.40.182:8686/linglong-api/stomp-websocket";  // 这里是你的代理 WebSocket URL
    const socket = new WebSocket(wsUrl);
    debugger
    // 监听 WebSocket 连接成功事件
    socket.addEventListener("open", () => {
        console.log("WebSocket 连接成功");
    });

    // 监听 WebSocket 消息事件
    socket.addEventListener("message", (event) => {
        try {
            const data = JSON.parse(event.data);  // 假设消息是 JSON 格式

            console.log("收到 WebSocket 消息:", data);

            // 根据消息类型执行不同的操作
            if (data.type === "import_progress") {
                console.log(`导入进度: ${data.progress}%`);  // 输出导入进度
            }

            if (data.type === "import_complete") {
                console.log("导入完成:", data.result);  // 输出导入完成的结果
            }

            if (data.type === "import_error") {
                console.error("导入失败:", data.error);  // 输出导入失败的错误信息
            }

        } catch (error) {
            console.error("处理消息失败:", error);
        }
    });

    // 监听 WebSocket 连接关闭事件
    socket.addEventListener("close", () => {
        console.log("WebSocket 连接已关闭");
    });

    // 监听 WebSocket 错误事件
    socket.addEventListener("error", (error) => {
        console.error("WebSocket 发生错误:", error);
    });
};
